package com.mt.demo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mt.demo.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 参会成员对象 mt_member
 * 
 * @author gary
 * @date 2025-08-11
 */
public class MtMember extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 成员记录ID */
    private Long memberId;

    /** 会议ID */
    @Excel(name = "会议ID")
    private Long meetingId;

    /** 会议名称 */
    @Excel(name = "会议名称")
    private String meetingName;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String nickName;

    /** 身份 master-主持人 guest-参会者 */
    @Excel(name = "身份 master-主持人 guest-参会者")
    private String identity;

    /** 首次入会时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次入会时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstJoin;

    /** 最后退会时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后退会时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLeave;

    /** 入会次数 */
    @Excel(name = "入会次数")
    private Long joinTimes;

    /** 累计参会时长（秒） */
    @Excel(name = "累计参会时长", readConverterExp = "秒=")
    private Long totalSeconds;

    public void setMemberId(Long memberId) 
    {
        this.memberId = memberId;
    }

    public Long getMemberId() 
    {
        return memberId;
    }

    public void setMeetingId(Long meetingId) 
    {
        this.meetingId = meetingId;
    }

    public Long getMeetingId() 
    {
        return meetingId;
    }

    public void setMeetingName(String meetingName) 
    {
        this.meetingName = meetingName;
    }

    public String getMeetingName() 
    {
        return meetingName;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    public String getNickName() 
    {
        return nickName;
    }

    public void setIdentity(String identity) 
    {
        this.identity = identity;
    }

    public String getIdentity() 
    {
        return identity;
    }

    public void setFirstJoin(Date firstJoin) 
    {
        this.firstJoin = firstJoin;
    }

    public Date getFirstJoin() 
    {
        return firstJoin;
    }

    public void setLastLeave(Date lastLeave) 
    {
        this.lastLeave = lastLeave;
    }

    public Date getLastLeave() 
    {
        return lastLeave;
    }

    public void setJoinTimes(Long joinTimes) 
    {
        this.joinTimes = joinTimes;
    }

    public Long getJoinTimes() 
    {
        return joinTimes;
    }

    public void setTotalSeconds(Long totalSeconds) 
    {
        this.totalSeconds = totalSeconds;
    }

    public Long getTotalSeconds() 
    {
        return totalSeconds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("memberId", getMemberId())
            .append("meetingId", getMeetingId())
            .append("meetingName", getMeetingName())
            .append("userId", getUserId())
            .append("nickName", getNickName())
            .append("identity", getIdentity())
            .append("firstJoin", getFirstJoin())
            .append("lastLeave", getLastLeave())
            .append("joinTimes", getJoinTimes())
            .append("totalSeconds", getTotalSeconds())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
